package org.netmelody.cieye.server.configuration;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.netmelody.cieye.core.logging.LogKeeper;
import org.netmelody.cieye.core.logging.Logbook;
public final class SettingsFile {
private static final Logbook LOG = LogKeeper.logbookFor(SettingsFile.class);
private final File file;
private Date lastReadDate = new Date(0L);
public SettingsFile(File file) {
this.file = file;
}
public List<String> readContent() {
if (! file.canRead()) {
return new ArrayList<String>();
}
try {
final List<String> result = FileUtils.readLines(this.file);
lastReadDate = new Date();
return result;
} catch (IOException e) {
LOG.error("failed to read settings file", e);
}
return new ArrayList<String>();
}
public boolean updateAvailable() {
return FileUtils.isFileNewer(file, lastReadDate);
}
public SettingsFile newReference() {
return new SettingsFile(this.file);
}
}